<?php
namespace backend\models;
use backend\models\QRcode;
use liangzoe\mobilesmser\TextSmser;
use Yii;

/*
 * @param1 生成的图片名称
 * @param2 容错级别L（QR_ECLEVEL_L，7%），M（QR_ECLEVEL_M，15%），Q（QR_ECLEVEL_Q，25%），H（QR_ECLEVEL_H，30%）
 * @param3 生成图片大小
 *   
 *   */

class Qr extends QRcode
{
    public static function generate($value,$errorCorrectionLevel = 'L',$matrixPointSize = 6)
    {
        //生成二维码图片
        $name = md5($value);
        $qrname = dirname(__FILE__).'/../web/tmp/qr/'.$name.'.png';
        QRcode::png($value, $qrname , $errorCorrectionLevel, $matrixPointSize, 2);
        $logo = dirname(__FILE__).'/../web/static/images/qrlogo.png';//准备好的logo图片
        $QR = $qrname;//已经生成的原始二维码图
        if ($logo !== FALSE) {
            $QR = imagecreatefromstring(file_get_contents($QR));
            $logo = imagecreatefromstring(file_get_contents($logo));
            $QR_width = imagesx($QR);//二维码图片宽度
            $QR_height = imagesy($QR);//二维码图片高度
            $logo_width = imagesx($logo);//logo图片宽度
            $logo_height = imagesy($logo);//logo图片高度
            $logo_qr_width = $QR_width / 5;
            $scale = $logo_width/$logo_qr_width;
            $logo_qr_height = $logo_height/$scale;
            $from_width = ($QR_width - $logo_qr_width) / 2;
            //重新组合图片并调整大小
            imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
                $logo_qr_height, $logo_width, $logo_height);
        }
        //输出图片
        imagepng($QR, $qrname);
        return 'tmp/qr/'.$name.'.png';
    }
    //后台使用
    public static function generate_admin($value,$file='item',$errorCorrectionLevel = 'Q',$matrixPointSize = 8)
    {
    	//生成二维码图片
    	$name = md5($value);
    	if($file == 'item')
    		$file = mt_rand(0, 9);
    	elseif($file == 'taozhuang')
    		$file = mt_rand(10, 19);
    	elseif($file == 'show')
    		$file = mt_rand(20, 29);
    	else
    		$file =  mt_rand(30, 39);
    	$folder = 'qr' .'/'.$file ;
    	TextSmser::make_dir(Yii::getAlias('@webroot').'/'.$folder);
    	
    	$qrname = $folder.'/'.$name.'.png';
    	//$qrname = dirname(__FILE__).'/../web/tmp/qr/'.$name.'.png';
    	QRcode::png($value, $qrname , $errorCorrectionLevel, $matrixPointSize, 2);	
    	$logo = Yii::getAlias('@webroot').'/static/images/qrlogo.png';//准备好的logo图片
    	$QR = $qrname;//已经生成的原始二维码图
    	if ($logo !== FALSE) {
    		$QR = imagecreatefromstring(file_get_contents($QR));
    		$logo = imagecreatefromstring(file_get_contents($logo));
    		$QR_width = imagesx($QR);//二维码图片宽度
    		$QR_height = imagesy($QR);//二维码图片高度
    		$logo_width = imagesx($logo);//logo图片宽度
    		$logo_height = imagesy($logo);//logo图片高度
    		$logo_qr_width = $QR_width / 5;
    		$scale = $logo_width/$logo_qr_width;
    		$logo_qr_height = $logo_height/$scale;
    		$from_width = ($QR_width - $logo_qr_width) / 2;
    		//重新组合图片并调整大小
    		imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,
    		$logo_qr_height, $logo_width, $logo_height);
    	}
    	//输出图片
    	imagepng($QR, $qrname);
    	return $folder.'/'.$name.'.png';
    }
}